package com.jfinal.ext.config;

import org.jetbrains.annotations.NotNull;

/**
 * @author Timor
 * @version 1.0
 * @date 2022/11/21 16:40:17
 */
public interface IConfigProvider {

    /**
     * 获取配置
     * @param name 配置名称
     * @return config
     * @throws Exception exception
     */
    String get(@NotNull String name) throws Exception;


    /**
     * 获取配置
     * @param name 配置名称
     * @param defaultConfig 默认配置
     * @return config
     */
    default String getOrDefault(@NotNull String name, String defaultConfig) {
        try {
            return get(name);
        } catch (Exception ignored) {
            return defaultConfig;
        }
    }

    /**
     * 保存配置
     * @param name 配置名称
     * @param config 配置
     * @return 是否保存成功
     */
    boolean save(@NotNull String name, @NotNull String config);

}
